#!/usr/bin/env python
# @FileName :tree.py
# @Time :2024/4/8 16:14
# @Author :邹强

import os

def list_files(startpath):
    for root, dirs, files in os.walk(startpath):
        # 计算当前目录root 相对于起始目录 startpath 的层级深度。
        # count(os.sep)是计算分隔符的数量来计算当前目录相对于startpath的层级深度
        level = root.replace(startpath, '').count(os.sep)
        # 根据当前层级创建一个缩进字符串，用于美化输出。每一级目录对应四个空格。
        indent = '    ' * level
        print(f"{indent}{os.path.basename(root)}\\") # root一定是目录
        subindent = '    ' * (level + 1)
        for f in files:
            print(f"{subindent}{f}")

# 使用方法
list_files('D:\Caj')

# 可以增加额外功能，比如添加符号表示目录等
